
import base64 from './base64.js'
import validation from './validation.js'
/**
 * 获取当前时间
 */
function getTimeString() {
  var timeStr = ""
  const now = new Date(),
    hour = now.getHours()
  if (hour < 6) {
    timeStr = "凌晨好"
  } else if (hour < 9) {
    timeStr = "早上好"
  } else if (hour < 12) {
    timeStr = "上午好"
  } else if (hour < 14) {
    timeStr = "中午好"
  } else if (hour < 17) {
    timeStr = "下午好"
  } else if (hour < 19) {
    timeStr = "傍晚好"
  } else if (hour < 22) {
    timeStr = "晚上好"
  } else {
    timeStr = "夜里好"
  }
  return timeStr
}

function formatNumber(n) {
  n = n.toString()
  return n[1] ? n : '0' + n
}

/**
 * 时间戳转化为年 月 日 时 分 秒
 * format：返回格式，支持自定义，但参数必须与formateArr里保持一致
 */
function toDateFormatString(date, format) {
  var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
  var returnArr = [];
  returnArr.push(date.getFullYear());
  returnArr.push(formatNumber(date.getMonth() + 1));
  returnArr.push(formatNumber(date.getDate()));
  returnArr.push(formatNumber(date.getHours()));
  returnArr.push(formatNumber(date.getMinutes()));
  returnArr.push(formatNumber(date.getSeconds()));
  for (var i in returnArr) {
    format = format.replace(formateArr[i], returnArr[i]);
  }
  return format;
}

/**
 * 获取某个时段的时间转化为年 月 日 时 分 秒
 * type 类型，0 天 1 月 2年
 * 增/减的值
 * format：返回格式，支持自定义，但参数必须与formateArr里保持一致
 */
function dateFormat(format) {
  return toDateFormatString(new Date(), format)
}

/**
 * 获取某个时段的时间转化为年 月 日 时 分 秒
 * type 类型，0 天 1 月 2年
 * 增/减的值
 * format：返回格式，支持自定义，但参数必须与formateArr里保持一致
 */
function formatTime(format, type, number) {
  var formateArr = ['Y', 'M', 'D', 'h', 'm', 's']
  var returnArr = []
  var date = new Date()
  switch (type) {
    case 2:
      date.setFullYear(date.getFullYear() + number)
      break
    case 1:
      date.setMonth(number)
      break
    default:
      date.setDate(date.getDate() + number)
      break
  }
  return toDateFormatString(date, format);
}

/**
 * 字符串转时间
 * val 需要转换的字符串
 * format 时间格式
 */
function stringToDate(val, format) {
  var date = new Date(val)
  return toDateFormatString(date, format)
}

/**
 * 将时间戳转换为时间格式
 * ns 时间戳值
 * format 时间格式
 */
function timestampToString(ns, format) {
  var date = new Date(ns > 1000000000000 ? ns : ns * 1000)
  return toDateFormatString(date, format)
}
function base64Encode(val) {
  return Base64.encode(val)
}
function getCurrentTimestamp() {
  return new Date().getTime()
}
module.exports = {
  getTimeString: getTimeString,
  toDateFormatString: toDateFormatString,
  dateFormat: dateFormat, //时间格式化
  formatTime: formatTime, //时间格式化
  getCurrentTimestamp: getCurrentTimestamp,//获取时间戳
  stringToDate: stringToDate, //字符串转时间
  timestampToString: timestampToString, //时间戳转时间
  base64Encode: base64.encode, //base64加密
  base64Decode: base64.decode, //base64解密
  isPone: validation.isPone,//验证手机号码
  isCN: validation.isCN//验证中文
}